package main

import (
	"fmt"
	"github.com/jinzhu/gorm"
	_ "github.com/jinzhu/gorm/dialects/mysql"
)

// UserInfo 用户信息
//
type UserInfo struct {
	gorm.Model
	Name string `gorm:"name:"`
	Gender string  `gorm:"gender:"`
	Hobby string    `gorm:"hobby:"`
}


func main() {
	db, err := gorm.Open("mysql", "root:123456qwe@(127.0.0.1:3306)/test?charset=utf8mb4&parseTime=True&loc=Local")
	if err!= nil{
		panic(err)
	}
	defer db.Close()

	// 自动迁移
	//db.AutoMigrate(&UserInfo{})

	//u1 := UserInfo{Name:"陆杰",Gender: "男",Hobby: "篮球"}
	//u2 := UserInfo{Name:"林冲", Gender:"女", Hobby:"足球"}

	// 创建记录
	//每次增加的时候，会自动将没有补全的字段自动赋值
   //db.Create(&u1)
   //
	//db.Create(&u2)


	// 查询

	// 获取第一条记录（主键升序）

	// SELECT * FROM users ORDER BY id LIMIT 1;
	var u = new(UserInfo)
	db.First(&u,6)
	fmt.Printf("%#v\n", u)
	fmt.Println(u.ID)
	// 获取最后一条记录（主键降序）
	//db.Last(&u)
	//fmt.Printf("%#v\n", u)
	//获取所有
	uusers:=[]UserInfo{}
	find := db.Find(&uusers)
	fmt.Println(find.RowsAffected)
	for _,i:=range uusers{
		fmt.Println(i)
	}


	//var uu UserInfo
	//db.Find(&uu, "hobby=?", "足球")
	//fmt.Printf("%#v\n", uu)

	// 更新
	//db.Model(&u).Update("hobby", "双色球")
	// 删除
	//db.Delete(&u)
}

